#pragma once

#include "GameControls.h"

class GameManager;
class MenuManager;

class GameController: public GameControls
{
public:

	GameController();
	~GameController();

	// Game Controls
	virtual void Run();
	virtual void Quit();
	virtual void Restart();
	virtual void Simulate(const bool i_doNotPrompt = false);
	virtual bool Save(const char* const filename);
	virtual bool Load(const char* const filename);
	virtual void EndSeason(const bool i_doNotPrompt, std::stringstream& o_message);

private:

	GameController(const GameController&);
	GameController& operator=(const GameController&);

	// model
	GameManager*	m_gameManager;

	// view (text view for now)
	MenuManager*	m_menuManager;

	volatile bool	m_inGame;
};
